<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>includeContentLoaded</title>
    <link rel="stylesheet" href="../lib/bootstrap3/css/bootstrap.min.css">
    <link rel="stylesheet" href="../lib/bootstrap3/css/dashboard.css">
    <script src="../lib/jquery/jquery-1.10.2.js"></script>
    <script src="../lib/angularjs/angular.js"></script>
</head>
<body ng-app="app01">
<div class="panel panel-primary"  ng-controller="ctrl01">
    <div class="panel-heading"><b>includeContentLoaded</b></div>
    <div class="panel-body">
        <div class="well">
            <p><b>$viewContentLoaded</b></p>
            <p>$viewContentLoaded事件每当ngView内容被重新加载时，从当前ngView作用域上发送。</p>
        </div>
        <div class="well">
            <p><b>1. $locationChangeStart</b></p>
            <p>当Angular从$location服务（通过$location.path()、 $location.search()等）对浏览器的地址作更新时，会触发$locationChangeStart事件。</p>
        </div>
        <div class="well">
            <p><b>2. $locationChangeSuccess</b></p>
            <p>当且仅当浏览器的地址成功变更，又没有阻止$locationChangeStart事件的情况下，$locationChangeSuccess事件会从$rootScope上广播出来。</p>
        </div>
        <div class="well">
            <p><b>3. $routeChangeStart</b></p>
            <p>在路由变更发生之前， $routeChangeStart事件从$rootScope发送出来。也就是在路由服务开始解析路由变更所需的所有依赖项时。这个过程通常涉及获取视图模板和解析route属性上所有依赖项的时候。</p>
        </div>
        <div class="well">
            <p><b>4. $routeChangeSuccess</b></p>
            <p>在所有路由依赖项跟着 $routeChangeStart被解析之后， $routeChangeSuccess被从$rootScope上广播出来。</p>
            <p>ngView指令使用$routeChangeSuccess事件来获悉何时实例化控制器并渲染视图。</p>
        </div>
        <div class="well">
            <p><b>5. $routeChangeError</b></p>
            <p>如果路由对象上任意的resolve属性被拒绝了， $routeChangeError就会被触发（比如它们失败了）。这个事件是从$rootScope上广播出来的。</p>
        </div>
        <div class="well">
            <p><b>6. $routeUpdate</b></p>
            <p>如果$routeProvider上的reloadOnSearch属性被设置成false，并且使用了控制器的同一个实例， $routeUpdate事件会被从$rootScope上广播。</p>
        </div>
        <div class="well">
            <p><b>7. $destroy</b></p>
            <p>在作用域被销毁之前， $destroy事件会在作用域上广播。这个顺序给子作用域一个机会，在父作用域被真正移除之前清理自身。</p>
            <p>例如，如果我们在控制器中有一个正在运行的$timeout，我们不希望在包含它的控制器已经不存在的情况下，它还继续触发。</p>
        </div>
    </div>
</div>
</body>
</html>